package com.hspedu.String;

/**
 * @Author Stringzhua
 * @Date 2024/3/8 20:48
 * description:
 */
public class StringExercise03 {
    public static void main(String[] args) {
        String a="hsp";//a指向常量池的"hsp"
        String b = new String("hsp");//b指向堆中的对象（value--->常量池中的hsp)
        System.out.println(a.equals(b));//t
        System.out.println(a == b);//f   两个对象的地址不一样
//        当调用 intern 方法时，
//        如果池已经包含一个等于此 String 对象的字符串（用 equals(Object) 方法确定），则返回池中的字符串。
//        否则，将此 String 对象添加到池中，并返回此 String 对象的引用
        //即b.intern()方法最终返回的是常量池的地址(对象)
        System.out.println(a == b.intern());//public native String intern();//true
        System.out.println(b == b.intern());//false
    }
}
